import request from '@/utils/request'

// 供应商管理API接口

/**
 * 获取供应商列表
 * @param {Object} params 查询参数
 * @param {string} params.supplierCode 供应商代码
 * @param {string} params.supplierName 供应商名称
 * @param {string} params.supplierType 供应商类型
 * @param {string} params.contactName 联系人姓名
 * @param {string} params.status 状态 (active/inactive)
 * @param {number} params.page 页码
 * @param {number} params.size 每页条数
 */
export function getSupplierList(params) {
  return request({
    url: '/api/suppliers',
    method: 'get',
    params
  })
}

/**
 * 根据ID获取供应商详情
 * @param {string} id 供应商ID
 */
export function getSupplierById(id) {
  return request({
    url: `/api/suppliers/${id}`,
    method: 'get'
  })
}

/**
 * 新增供应商
 * @param {Object} data 供应商数据
 * @param {string} data.supplierCode 供应商代码
 * @param {string} data.supplierName 供应商名称
 * @param {string} data.supplierType 供应商类型
 * @param {string} data.contactName 联系人姓名
 * @param {string} data.contactPhone 联系人电话
 * @param {string} data.address 地址
 * @param {string} data.status 状态
 */
export function createSupplier(data) {
  return request({
    url: '/api/suppliers',
    method: 'post',
    data
  })
}

/**
 * 更新供应商信息
 * @param {string} id 供应商ID
 * @param {Object} data 更新的供应商数据
 */
export function updateSupplier(id, data) {
  return request({
    url: `/api/suppliers/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除供应商
 * @param {string} id 供应商ID
 */
export function deleteSupplier(id) {
  return request({
    url: `/api/suppliers/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除供应商
 * @param {Array} ids 供应商ID数组
 */
export function batchDeleteSuppliers(ids) {
  return request({
    url: '/api/suppliers/batch',
    method: 'delete',
    data: { ids }
  })
}

/**
 * 导出供应商Excel
 * @param {Object} params 查询参数
 */
export function exportSuppliers(params) {
  return request({
    url: '/api/suppliers/export',
    method: 'get',
    params,
    responseType: 'blob'
  })
}

/**
 * 获取供应商类型选项
 */
export function getSupplierTypes() {
  return request({
    url: '/api/suppliers/types',
    method: 'get'
  })
}

/**
 * 检查供应商代码唯一性
 * @param {string} supplierCode 供应商代码
 * @param {string} excludeId 排除的ID（编辑时使用）
 */
export function checkSupplierCodeUnique(supplierCode, excludeId = null) {
  return request({
    url: '/api/suppliers/check-code',
    method: 'get',
    params: {
      supplierCode,
      excludeId
    }
  })
} 